// 发送请求

import config from "./config";
// 将cookie存在内存中
let cookie = wx.getStorageSync("cookie");

export default function (url, data = {}, method = "GET") {
  // 如果使用await的话第二个请求需要等第一个请求响应回来之后才会发送，所以需要使用promise
  return new Promise((resolve, reject) => {
    wx.request({
      url: config.mpHost + url,
      data,
      method,
      header: {
        // 项目初始化之后，一开始应该是没有cookie数据的
        // 只有用户登录过之后，此处才会有数据
        cookie,
      },
      success: (res) => {
        // 必须是登录接口的cookie才保存
        // 1.在发送登录请求的时候，在data中创建isLogin属性，只有拥有isLogin才是登录接口
        // 在成功的回调中，通过isLogin属性判断是否要保存当前cookie
        if (data.isLogin) {
          // 此操作是将cookie保存到硬盘中
          const c1 = res.cookies.find((item) => {
            return item.startsWith("MUSIC_U");
          });
          // 因为发送请求时就必须要将cookie存起来，所以需要同步存储storage
          wx.setStorageSync("cookie", c1);

          // 此操作是将cookie存放到内存中
          cookie = c1;
        }

        // promise成功后再传值
        // console.log(res,'res');
        resolve(res.data);
      },
    });
  });
}
